

%macro C_pushs 0-1 0
	push ebp
	mov ebp,esp
	sub esp,%1
	push esi
	push edi
	push ebx
%endmacro

%macro C_pops 0-1 0
	
	pop ebx
	pop edi
	pop esi
	add esp,%1	
	pop ebp
%endmacro


%macro saturar 1
%%comienzo:
cmp %1, 255
jg %%saturoUp
cmp %1, 0
jl %%saturoDown
jmp %%continuar

%%saturoUp:
	mov %1, 255
	jmp %%continuar
%%saturoDown:
	neg %1
	jmp %%comienzo
%%continuar:

%endmacro

%macro rellenarBordes 3			;eax=destino,edx=paso,ebx=alto


	mov ecx, %2

%%ciclo1:
	mov byte [%1], 0
	inc edi
	loop %%ciclo1

	mov ecx, %3
	dec ecx
	dec ecx
%%ciclo2:
	mov byte [%1], 0
	lea %1, [%1+%2 -1]
	mov byte [%1], 0
	inc %1
	loop %%ciclo2
	
	mov ecx, %2
%%ciclo3:
	mov byte [%1], 0
	inc %1
	loop %%ciclo3

%endmacro
